//
//  JJStatues.swift
//  微博1
//
//  Created by 卷卷 on 15/9/8.
//  Copyright © 2015年 JJ. All rights reserved.
//

import UIKit

//微博 模型
class JJStatues: NSObject {

    /// 创建时间
    var created_at: String?
    /// 微博ID
    var id: Int = 0
    /// 微博信息内容
    var text: String?
    /// 微博来源
    var source: String?
    /// 用户模型 － 如果直接使用 KVC，会变成字典
    var user: JJUser?

    // MARK: - 构造函数
    // NSArray & NSDictionary 在 swift 中极少用，contentOfFile 加载 plist 才会使用
    init(dict: [String: AnyObject]) {
        super.init()
        
        setValuesForKeysWithDictionary(dict)
    }
    
    override func setValue(value: AnyObject?, forKey key: String) {
        // 1. 判断 key 是否是 "User"
        if key == "user" {
            // 如果 key 是 user, value 是字典
            // 调用 User 的构造函数创建 user 对象属性
            user = JJUser(dict: value as! [String: AnyObject])
            
            // 如果不return，user 属性又会被默认的 KVC 方法，设置成字典
            return
        }
        
        super.setValue(value, forKey: key)
    }
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {}
    
    override var description: String {
        let keys = ["created_at", "id", "text", "source", "user"]
        
        return dictionaryWithValuesForKeys(keys).description
    }

}
